跳到主要内容

宽度和高度称为视频的分辨率。

FFMPEG 提供了几种缩放视频的方法。 最简单的方法是使用 -s 选项,例如在本例中:

ffmpeg -i YOUR_INPUT.mov -s 1280x720 YOUR_OUTPUT.mp4

您可以指定以像素为单位的宽度和高度,例如上面的示例,或者您可以使用视频分辨率缩写,如官方 FFMPEG 的文档 中所述,例如下面的示例:

ffmpeg -i YOUR_INPUT.mov -s 4kdci YOUR_OUTPUT.mov

通过指定 -s 4kdci将指示 FFMPEG 以 4096x2160 像素(4K 分辨率)缩放您的输入视频。

什么是纵横比

纵横比:电视或电影图像的宽度与其高度的比率。

如果您需要处理来自不同来源的视频,例如相机 RAW 素材、智能手机等,您可能遇到不同的纵横比。

现在常见的纵横比是 16:9(电视)或 9:16(智能手机),但您可能会遇到涉及不同纵横比的情况,尤其是在电影制作领域。

  • 一个 16:9 矩形,其中矩形可视化比率

    image-20220209214649870

像素纵横比 (PAR)

PAR 是一个数学比率,描述了数字图像中像素的宽度与该像素的高度的比较。

大多数数字成像系统将图像显示为微小的方形像素网格。 然而,一些成像系统,尤其是那些必须与标准清晰度电视电影兼容的成像系统,将图像显示为矩形像素网格,其中像素宽度和高度不同。 像素纵横比描述了这种差异。 像素纵横比的使用主要涉及与标准清晰度电视和其他一些特殊情况有关的图片。 大多数其他成像系统,包括那些符合 SMPTE 标准和实践的系统,都使用方形像素。

  • 像素纵横比 1:1

    image-20220209214919877

    • 像素纵横比 2:1

      image-20220209215057278

可以在 FFMPEG 的输出中指定像素纵横比 (PAR) 的值,用于指示最终用户的播放器如何显示像素,使用 -vf scale(用于缩放的视频过滤器)和 -setsar 选项的组合( Sample Aspect Ratio)。

将 SAR 设置为 1:1(缩放)

ffmpeg -i YOUR_4:3_INPUT.mov -vf scale=1280x720,setsar=1:1 -c:a copy YOUR_16:9_OUTPUT.mov

-vf scale=1280x720 表示“视频滤镜比例,Video Filter Scale”,1280x720 指的是输出文件所需的宽度和高度

-setsar=1:1表示 将像素纵横比设置为 1:1(正方形)。

-c:a copy 这将复制原始输入的音频,无需重新编码。

  • 原始 720x576 镜头,4:3

    image-20220209215749637

  • 最终输出,缩放为 1280x720, 16:9

    image-20220209215847813

将 SAR 设置为 1:1(使用 Pillarbox 保留原始比例)

ffmpeg -i INPUT.mov -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -c:a copy OUTPUT.mov

原始 720x576 镜头,4:3

image-20220209220220693

最终输出为 1280x720, 16:9,带 Pillar box

image-20220209220320000

-vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -vf (视频滤镜)将执行 2 个不同的操作。 第一个将以 1280(宽度)x720(高度)缩放输入,并通过缩放输入来保留原始纵横比。 第二个(pad)将计算并插入一个Pillar Box ,从而产生最终的 1280x720 输出视频。 如果您的输入的纵横比比输出的纵横比宽,则会发生 Letterboxing。iw代表“输入宽度”; ow代表“输出宽度”;ih代表“输入高度”,oh代表输出高度。 根据输入,数学表达式用于计算Pillar/Letter Box 的大小。

9:16 纵横比

Instagram 或 YouTube 等许多社交网络都支持 9:16 的比例。 要制作保留原始宽高比9:16的视频,必须将宽度与高度反转,如 转换720x1280 视频的示例所示:

ffmpeg -i YOUR_16:9_INPUT.mov -vf "scale=720:1280:force_original_aspect_ratio=decrease,pad=720:1280:(ow-iw)/2:(oh-ih)/2" -c:a copy YOUR_9:16_OUTPUT.mov
  • 原始 720x576 镜头,4:3

    image-20220209220747722

  • 最终输出,1280x720,Letterboxed,9:16

    image-20220209220819849

Pillar/Letter Box 的颜色

要更改Pillar/Letter Box的颜色,可以使用color选项指定一个值,例如在此示例中生成红色的Letterbox:

ffmpeg -i INPUT.mov -vf "scale=720:1280:force_original_aspect_ratio=decrease,pad=720:1280:(ow-iw)/2:(oh-ih)/2:color=red" OUTPUT.mov
  • 原始 720x1280 黑色Letterbox

    image-20220209221211807

  • 最终输出,720x1280 红色Letterbox

    image-20220209221252746

裁剪

当您想避免使用 Pillar/Letter Boxes 时,可以使用crop选项,如下所示:

ffmpeg -i YOUR_4:3_INPUT.mov -vf "scale=1280:720:force_original_aspect_ratio=increase,crop=1280:720" CROP_OUTPUT.mov
  • 原始 720x576 镜头,4:3

    image-20220209221452653

  • 最终 1280x720 裁剪镜头,16:9image-20220209221519386